#include <stdlib.h>
#include <stdio.h>
#include <PopupOSAL.hpp>
#include "PopupServer.hpp"

#include "DefaultAvatar.res"

using namespace Popup;
using namespace std;

MaquiServer::MaquiServer(const string & p_rcpath) : rcpath(p_rcpath) {
  if (rcpath.length() == 0) {
    rcpath = string(getenv("HOME")) + "/.popup/server";
  }
  if (!PopupUtils::mkdir(rcpath, 0755)) {
    throw "Cannot create resource directory";
  }

  // Create default avatar
  string defaultAvatar = getDefaultAvatar();
  if (!PopupUtils::fexists(defaultAvatar)) {
    if (!PopupUtils::mkdir(PopupUtils::dirname(defaultAvatar), 0755)) {
      fprintf(stderr, "Oooops! Failed to create default avatar directory!!");
      throw "Fatal";
    }
    if (!PopupUtils::dumpBufferToFile(defaultAvatar, IMG_defaultAvatarPng,
        sizeof(IMG_defaultAvatarPng))) {
      fprintf(stderr, "Oooops! Failed to create default avatar!!");
      throw "Fatal";
    }
  }
}

string MaquiServer::getResourceDir() {
  return rcpath;
}

string MaquiServer::getDefaultAvatar() {
  return rcpath + "/default/avatar.png";
}
